EasyCrypt Circuit Based Reasoning Extension#752
Conversation
1b12249 to
66efdd7
Compare
fdefb72 to
7ec289f
Compare
aef3a2b to
01f21ac
Compare
58c193f to
433cbb4
Compare
d7c187a to
f433cb0
Compare
8288caf to
57a2e2b
Compare
5b0ce21 to
d299f15
Compare
a828b25 to
bada5a0
Compare
| "why3" {>= "1.8.0" & < "1.9"} | ||
| "ppx_deriving" | ||
| "ppx_deriving_yojson" | ||
| "hex" |
There was a problem hiding this comment.
Do we really need these 4 last dependencies?
There was a problem hiding this comment.
Both ppx_derivings were for the printing of spec language ASTs, we can add a custom printing method to replace it. Hex was for the parsing of hexadecimal integers in the spec language, so that one seems wise to keep instead of rolling our own
| @@ -1,4 +1,9 @@ | |||
| (dirs 3rdparty src etc theories examples assets scripts) | |||
| (env | |||
There was a problem hiding this comment.
Move the OCaml flags from src so that we use the same flags everywhere.
| [test-examples] | ||
| okdirs = !examples | ||
| exclude = examples/MEE-CBC examples/old examples/old/list-ddh !examples/incomplete examples/to-port | ||
| exclude = examples/MEE-CBC examples/exclude examples/old examples/old/list-ddh !examples/incomplete examples/to-port |
There was a problem hiding this comment.
What the point of adding examples that are directly excluded?
There was a problem hiding this comment.
No point, that line was changed in a commit that was removing examples dependent on JWord, so ideally we remove both
| @@ -4,22 +4,23 @@ | |||
|
|
|||
There was a problem hiding this comment.
Why this file is modified at all?
There was a problem hiding this comment.
These are change I made locally to make it actually work, it should not be part of this PR (but it is rather useful, so we can think about if we want to propagate some version of them)
| in | ||
| doit {level = 0; subst = EcSubst.empty} f | ||
|
|
||
| (* FIXME: Check that this does not incur false positives *) |
| val f_pr : memory -> xpath -> form -> ss_inv -> form | ||
|
|
||
| (* FIXME: Check this V *) | ||
| (* FIXME CIRCUIT PR: do we want to keep this? *) |
| val ty_chunk : ty -> ty | ||
| val ty_all : ty -> ty | ||
|
|
||
| (* FIXME CIRCUIT PR: if keeping, maybe change names *) |
| ; size : binding_size | ||
| ; theory : EcPath.path } | ||
|
|
||
| type bv_opkind = [ |
There was a problem hiding this comment.
Should we use a non-variant-polymorphic datatype?
There was a problem hiding this comment.
Non-polymorphic variant?
| sp_params : int * (EcIdent.t * module_type) list; | ||
| } | ||
|
|
||
|
|
There was a problem hiding this comment.
This file as a lot of modifications that are not related to bdep. Problem with merge?
There was a problem hiding this comment.
Might be, but there was a reordering of the file contents needed by bdep, so that might be confusing the diff (or might have confused the merge algo)
| FApi.t_try (process1_core ttenv t) tc | ||
|
|
||
| (* -------------------------------------------------------------------- *) | ||
| (* FIXME: Maybe move the extens tactic to this file as well? *) |
There was a problem hiding this comment.
Was creating a dependency loop when I first tried to put it there, but might have been because of some debugging instructions, we can move before the merge
Adds circuit based reasoning to EasyCrypt in the form of a module for converting EC constructs into circuits and reasoning over said circuits.
Adds various tactics to use the added functionality in proofs.
Depends on external SMT solver BitWutzla and on external circuit library Lospecs.